﻿#pragma once

#include <cstdint>

namespace Algorithm {

extern void set_timeStampSim(const uint64_t timeStamp); //unit ns

class SystemTime
{
public:
	SystemTime() = delete;
	~SystemTime() = default;

	static void updateSystemTime(void);
	static float cycleTime(void) { return cycleTime_; }
	static uint64_t systemTime(void) { return systemTime_; } 
	static uint64_t timeStamp(void) ; //unit ms
	static uint64_t timeStampNs(void) ;// unit ns
#ifndef SIL_SIM_BASE_MF4_FILE
private:
#endif
	static uint64_t systemTime_;   //unit ms
	static uint64_t systemTimeK1_;  //unit ms
	static float cycleTime_;   //s
};

}  // namespace Algorithm 